Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT Compiler
نویسندگان
چکیده
Modern Just-in-Time compilers (or JITs) typically interleave several mechanisms to execute a program. For faster startup times and observe the initial behavior of an execution, interpretation can be initially used. But after while, JITs dynamically produce native code for parts program they often. Although some time is spent compiling dynamically, this mechanism makes much remaining execution. Such are complex pieces software with various components, greatly rely on precise interplay between different languages being executed, including on-stack-replacement. Traditional static like CompCert have been mechanized in proof assistants, but scarcely formalized so far, partly due their impure nature numerous components. This work presents model JIT dynamic generation code, implemented formally verified Coq. cannot written Coq, we propose methodology delimit, specify reason effects JIT. We argue that daunting task verifying complete should draw existing proofs generation. To end, our successfully reuses its correctness during compilation. Finally, prototype extracted executed.
منابع مشابه
CompCert – A Formally Verified Optimizing Compiler
CompCert is the first commercially available optimizing compiler that is formally verified, using machineassisted mathematical proofs, to be exempt from miscompilation. The executable code it produces is proved to behave exactly as specified by the semantics of the source C program. This article gives an overview of the design of CompCert and its proof concept and then focuses on aspects releva...
متن کاملFormally Verified Modular Semantics
This chapter presents the results of the validation and verification of a crucial component of BOS, a large safety-critical system that decides when to close and open the Maeslantkering, a storm surge barrier near the city of Rotterdam in the Netherlands. BOS was specified in the formal language Z and model checking has been applied to some of its subsystems during its development. A lightweigh...
متن کاملFormally Verified System Initialisation
The safety and security of software systems depends on how they are initially configured. Manually writing program code that establishes such an initial configuration is a tedious and error-prone engineering process. In this paper we present an automatic and formally verified initialiser for component-based systems built on the general-purpose microkernel seL4. The construction principles of th...
متن کاملAn Investigation into the Automated Generation of Provably Correct Code from Formally Verified Designs
In this project, Stress Monitor (SM) is presented which is actually a mobile-based stress diary. The topic of Personal Health Monitoring is introduced and an overview of the related literature is given. Traditional stress diaries require much time from the user, they can easily be lost and they are not engaging. Stress Monitor aims to provide users assistance in _lling the diary easier by using...
متن کاملA Formally-Verified Alias Analysis
This paper reports on the formalization and proof of soundness, using the Coq proof assistant, of an alias analysis: a static analysis that approximates the flow of pointer values. The alias analysis considered is of the points-to kind and is intraprocedural, flow-sensitive, field-sensitive, and untyped. Its soundness proof follows the general style of abstract interpretation. The analysis is d...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3571202